package com.fahai.web.service;

import com.fahai.common.PageVo;
import com.fahai.web.entity.CannelInfo;
import com.fahai.web.entity.MpayflowVO;
import com.fahai.web.entity.QbyeVO;
import com.fahai.web.entity.UserInfo;
import com.fahai.web.vo.ClientManageConditionVo;
import com.fahai.web.vo.UserInfoListVo;

import java.util.List;
import java.util.Map;

/**
 * 户管理业务层
 */
public interface UserInfoService {
    /**
     * 查询
     * @param userInfo
     * @param pageVo
     * @return
     */
    public PageVo getClientList(ClientManageConditionVo userInfo, PageVo pageVo);


    /**
     * 获取通话列表
     *
     * * @param userInfo
     * @param pageVo
     * @return
     */
    public PageVo findCallFlowList(UserInfo userInfo, PageVo pageVo);

    public int getClientCount(ClientManageConditionVo userInfo, PageVo pageVo);

    /**
     * 获取有效通话次数
     * @param uid
     * @return
     */
    public int getEffectiveTimes(Integer uid);

    /**
     * 批量解冻用户
     * @param idlist
     */
    public void userunfrozeAccount(List<Integer> idlist);

    /**
     * 批量冻结
     * @param idlist
     */
    public void userfrozeAccount(List<Integer> idlist);

    /**
     * 查看用户信息
     * @param userId
     * @return
     */
    public UserInfo getUserInfoById(Integer userId);


    public UserInfoListVo getUserInfoListVoById(Integer userId);
    /**
     * 查看用户渠道
     * @param userId
     * @return
     */
    public CannelInfo findCannelInfo(Integer userId);
    /**
     * 查看用户钱包余额
     * @param userId
     * @return
     */
    public List<QbyeVO> getWalletBalance(Integer userId);
    /**
     * 查看M站消费记录
     * @param userId
     * @return
     */
    public List<MpayflowVO> getMpayFlow(Integer userId);
    /**
     * 查看公众号消费记录
     * @param userId
     * @return
     */
    public List<MpayflowVO> getWxbody(Integer userId);
    /**
     * 查看M站充值记录
     * @param userId
     * @return
     */
    public List<MpayflowVO> getPaymz(Integer userId);
    /**
     * 查看微信充值记录
     * @param userId
     * @return
     */
    public List<MpayflowVO> getPaywx(Integer userId);

    /**
     * 编辑用户信息
     * @param userInfoVo
     */
    public void updateUserInfo(UserInfo userInfoVo);

    public void updateRemark(UserInfo userInfoVo);

    public List<Map<String,Object>> selectChartForHours(String registerTime);


    void insertUserInfo(UserInfo userInfo);

    List<UserInfo> queryUserInfo(int proid, String uphone);
}
